package hr.sting.droidorm.dao;

import hr.sting.droidorm.DroidOrmCursor;

import java.util.List;

/**
 * @author mstipanov
 * @since 12.09.2010. 18:23:54
 */
public class BasicOrmDataService extends DroidOrmSupport {

    public <T> DroidOrmCursor<T> findAll(Class<T> entityType) {
        return getDroidOrmTemplate().query(entityType, null, null);
    }

    public <T> T findById(Class<T> entityType, Object id) {
        DroidOrmCursor<T> ormCursor = getDroidOrmTemplate().query(entityType, "id = ?", new String[]{String.valueOf(id)});
        return ormCursor.hasNext() ? ormCursor.next() : null;
    }

    public <T> void saveAll(List<T> list) {
        for (T t : list) {
            save(t);
        }
    }

    public <T> void save(T t) {
        getDroidOrmTemplate().saveOrUpdate((Class<T>) t.getClass(), t);
    }

    public <T> void delete(T t) {
        getDroidOrmTemplate().delete((Class<T>) t.getClass(), t);
    }
}
